package ar.fiuba.tp7552.buildadmin.webactions.tipoPropiedad;

import java.util.Collection;

import ar.fiuba.tp7552.buildadmin.model.builds.Edificio;
import ar.fiuba.tp7552.buildadmin.model.builds.TipoPropiedad;
import ar.fiuba.tp7552.buildadmin.service.EdificioService;
import ar.fiuba.tp7552.buildadmin.service.TipoPropiedadService;
import ar.fiuba.tp7552.buildadmin.webactions.BaseAction;

import com.opensymphony.xwork2.Preparable;

public class ListTipoPropiedadAction extends BaseAction implements Preparable {
	
	private TipoPropiedadService tipoPropiedadService;
	private EdificioService edificioService;

	private Edificio edificio;
	// ~~ Constructor ====================================================
	
	public ListTipoPropiedadAction(TipoPropiedadService tipoPropiedadService, EdificioService edificioService) {
		super();
		this.tipoPropiedadService = tipoPropiedadService;
		this.edificioService = edificioService;
	}
	
	// ~~ Actions ========================================================
	
	public String load() {
		return BaseAction.SUCCESS;
	}
	
	@Override
	public void prepare() throws Exception {
		if (edificio != null && edificio.getId() != null) {
			edificio = edificioService.get(edificio.getId());
		}
	}

	// ~~ getters y setters ==============================================

	public Collection<TipoPropiedad> getTipoPropiedades() {
		if (edificio != null && edificio.getId() != null) {
		    return edificio.getTipoProps();	
		} else {
			return tipoPropiedadService.getAll();
		}
	}

	public Edificio getEdificio() {
		return edificio;
	}

	public void setEdificio(Edificio edificio) {
		this.edificio = edificio;
	}	
}